Computers are known to include a central processing unit ("CPU"), memory, audio processing circuitry, video processing circuitry, and peripheral interfaces such that the computer may interface with a keyboard, printer, mouse, etc. The memory may be in a variety of forms; such as cache, hard drive, magnetic tape, floppy disk, RAM (Random Access Memory), ROM(Read Only Memory), CDROM (Cassette Disc Read Only Memory), etc. Such memory temporarily or permanently stores programming instructions, that when read by the CPU causes the CPU to manipulate digital information based on the programming instructions.
While the CPU is executing one set of programming instructions (E.g., for a particular application), the CPU may receive a request to execute another set of programming instructions (i.e., another application). If the CPU grants the request, it may be performing a plurality of applications simultaneously. The CPU may deny, or suspend, the request when parallel execution of the particular applications, or algorithms, have overlapping operations. For example, if each of the particular algorithms require the same registers to be dedicated thereto, the CPU must allocate the registers in a controlled manner. Without controlling access to these registers, the algorithms may not be executed properly. The CPU must further control the registers when the currently executing applications, or algorithms, generate inter-dependent data, i.e., the data generated by one application is needed by another application.
The CPU needs to further control the registers, and overall execution of applications, because of design flaws of newly released applications and/or newly released Application Specific Integrated Circuits (ASIC). The design flaws may be relatively minor causing the application, or the ASIC, to malfunction occasionally or may be somewhat severe causes the application, or the ASIC to hang up. To correct the flaws of new applications or ASICs, a system is expanded to include work around software. Work-around software is most predominately used for new ASIC releases and corrects deficiencies in the ASIC such that the desired performance is achieved.
While work around software overcomes the design flaws of newly released applications and/or ASICs, it does so with some cost to the overall efficiency of the computer system. The decrease in efficiency occurs because the core memory is expanded to include the work-around software, which slows access to the core memory. As is known, when the size of memory increases, especially for ROM, the accessing of such a memory slows, thereby slowing the overall efficiency of the system.
Therefore, a need exists for a method and apparatus that optimizes execution of digital processing operations.